package TestSparkConversionOperator;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.VoidFunction;

public class SparkTextFile {
    /**
     * 用sparkContext.textFile(...)创建RDD
     * （1）textFile(...)的第二个参数可以指定最小分区数。默认情况，Spark为HDFS的每个数据块创建一个分区。
     * （2）textFile(...)也可以读取本地文件系统：例如：sc.textFile(“D:\\hello.txt”)
     * (3)textFile(...)的第一个参数，可以是具体的文件名，也支持通配符，如：sc.textFile(“D:\\*.txt”)，*就是通配符，表示读取D盘下的所有文件名后缀为.txt的文件。
     * @param args
     */
    public static void main(String[] args) {
        SparkConf sparkConf = new SparkConf().setAppName("SparkTextFile").setMaster("local");
        JavaSparkContext javaSparkContext = new JavaSparkContext(sparkConf);
        JavaRDD<String> rdd = javaSparkContext.textFile("G:\\桌面\\文本\\*.txt");
        rdd.foreach(new VoidFunction<String>() {
            @Override
            public void call(String s) throws Exception {
                System.out.println(s);
            }
        });
        System.out.println(rdd.glom().collect().size());
    }
}
